package com.ctshk.rpc.hotel.req;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

/**
 * 酒店外挂单信息req
 */
@Data
@ApiModel(description="酒店外挂单信息req")
public class HotelManualOrderReq implements Serializable {

    private static final long serialVersionUID = -6716306194255841201L;

    @NotBlank(message = "酒店名称不能为空")
    @ApiModelProperty(value = "酒店名称", required = true)
    private String hotelName;

    @NotNull(message = "外挂单系统不能为空")
    @ApiModelProperty(value = "外挂单系统", required = true)
    private Long systemId;

    @NotBlank(message = "外挂单系统名称不能为空")
    @ApiModelProperty(value = "外挂单系统名称", required = true)
    private String systemName;

    @NotNull(message = "入住日期不能为空")
    @ApiModelProperty(value = "入住日期", required = true)
    private LocalDate checkInDate;

    @NotNull(message = "离店日期不能为空")
    @ApiModelProperty(value = "离店日期", required = true)
    private LocalDate checkOutDate;

    @NotBlank(message = "房间名称不能为空")
    @ApiModelProperty(value = "房间名称", required = true)
    private String roomName;

    @NotNull(message = "房间数不能为空")
    @ApiModelProperty(value = "房间数", required = true)
    private Integer roomNumber;

    @NotNull(message = "是否含早不能为空")
    @ApiModelProperty(value = "是否含早(0否1是)", required = true)
    private Integer hasBreakfast;

    @NotNull(message = "城市id不能为空")
    @ApiModelProperty(value = "城市id", required = true)
    private Long cityId;

    @NotBlank(message = "城市名称不能为空")
    @ApiModelProperty(value = "城市名称", required = true)
    private String cityName;

    @NotNull(message = "晚数不能为空")
    @ApiModelProperty(value = "晚数", example = "3", required = true)
    private Integer nights;

    @NotNull(message = "币种ID不能为空")
    @ApiModelProperty(value = "币种ID", required = true)
    private Long currencyId;

    @NotBlank(message = "币种名称不能为空")
    @ApiModelProperty(value = "币种", required = true)
    private String currencyName;

    @NotNull(message = "酒店名称不能为空")
    @ApiModelProperty(value = "汇率,此汇率是计划汇率", required = true)
    private Double exchangeRate;

    @NotNull(message = "支出金额不能为空")
    @ApiModelProperty(value = "支出金额(成本价)", required = true)
    private BigDecimal costPrice;

    @NotNull(message = "预订服务费不能为空")
    @ApiModelProperty(value = "预订服务费", required = true)
    private BigDecimal reserveCharge;

    @ApiModelProperty(value = "出票方式(1 门店出票 2 后台出票出票)")
    private Integer ticketMode;

    @ApiModelProperty(value = "旅客资料")
    private String touristInfo;

    @Valid
    @ApiModelProperty(value = "联系人信息", required = true)
    private HotelOrderContactPersonInfo hotelOrderContactPersonInfo;

    @ApiModelProperty(value = "备注")
    private String remark;

}
